/************************************************************************************************
*Autores: Glenda Cairo, Juan Goldes																*
*Fecha de Realizacion: 25/04/2013																*
*Modificaciones: 10/05/2013. Juan Goldes. Se agrega la rutina CerrarTodos(), que recibe dos		*
*	  punteros de archivo obligatorios y tres opcionales y los cierra si son distintos de NULL	*
*	  Permitiendo que se cierren hasta 5 archivos.												*
*************************************************************************************************/
#include <iostream>
#include <conio.h>
#include <string.h>
#include "admarchi.h"
#include <Windows.h>
using namespace std;


bool ArchExiste(const char * rutaynombre){
FILE* archivo;

archivo = fopen(rutaynombre, "rb"); //Intento abrir el archivo en modo lectura, si no existe devuelvo false.
	if (archivo == NULL)
		return false;
	else
	{	//Si el archivo existe lo cierro y devuelvo true.
		fclose(archivo);
		return true;
	}
}
FILE* AbrirArch(const char * rutaynombre, const char * modo)
{
	FILE * archivo = NULL;
	if(!(modo == "rb" || modo == "rt") || ArchExiste(rutaynombre))
	{
		archivo = fopen(rutaynombre, modo);
	}
	return archivo;
}

//Rutina para cerrar mas de 2 archivos, hasta un total de 5. Utilizo 2 variables obligatorias y 3 opcionales.
void CerrarTodos(FILE * obli1, FILE * obli2, FILE * opci1, FILE * opci2, FILE * opci3)
{
	//Si cualquiera de las variables es distinta de NULL, cierra el archivo correspondiente, de lo contrario no hace nada.
	if(obli1 != NULL)
		fclose(obli1);
	if(obli2 != NULL)
		fclose(obli2);
	if(opci1 != NULL)
		fclose(opci1);
	if(opci2 != NULL)
		fclose(opci2);
	if(opci3 != NULL)
		fclose(opci3);
}
